
/**
 * @cat Core
 * @name CoreAPI.subclass
 * @desc subclass object. The function simply subclasses another object.
 * @param {Object} o the object to subclass
 * @param {Object} s source object for subclassing
 * @return {Object} subclassed object
 * @example The function is suitable for performing basic subclassing Here is
 * an example:
 * <pre><code>function Parent() {
 * }
 * 
 * Parent.prototype.test = function () {
 *     alert('message from test');
 * };
 * 
 * function Child() {
 * }
 * 
 * CoreAPI.subclass(Child, Parent);
 * 
 * var c = new Child();
 * c.test();</code></pre>
 * Notice that child has the properties and characteristics of the parent.
 */
CoreAPI.subclass = function (o, s) {
	function i() {}
	i.prototype = s.prototype;

	o.prototype = new i();
	o.prototype.constructor = o;

	return o;
};